/*
二次封装typeof
 */

function myType(val) {
    let template = {
        "[object Array]": "array",
        "[object Object]": "object",
    };
    if (val === null) {
        return val;//如果为null则返回自己
    }
    if (typeof val === "object") {//对object进行二次检验
        // 这个方式才能区分数组和对象 因为typeof会将都判断为object
        let type1 = Object.prototype.toString.call(val);
        return template[type1];
    }
    return typeof val;//基本数据类型照常返回
}
console.log(myType([1, 2, 3]), typeof [1, 2, 3]);
